
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMediaPlayer>
#include <QStringList>
#include <QDir>
#include <QMediaPlaylist>
#include <QMovie>
#include<QNetworkAccessManager>
#include<QVariant>
#include<QByteArray>
#include<QJsonParseError>
#include<QJsonDocument>
#include<QJsonObject>
#include<QJsonArray>
#include<QUrl>
#include<QPixmap>
#include<QSize>
#include<QVector>
#include<QNetworkAccessManager>
#include<QNetworkReply>
#include<QPushButton>
#include <QSignalMapper>
#include <QSsl>
#include <QTimer>
#include <Qt3DInput/QMouseEvent>
#include<QVector>
#include"songinfo.h"
#include"lenon.h"
#include"historydata.h"



QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow

{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

    void search(QString str,int page,int pagesize); //搜索
    void parseJsonSongInfo(QString json);
    void hideAll();
    QString getcontains(QJsonObject Object,QString strInfo);
    QVector<SongInfo> parseJson(QString json);




private:
    Ui::MainWindow *ui;

    bool isPlay = false;
    QString MusicPath = "C:\\Users\\86198\\Desktop\\Music";
    QStringList fileList;//文件名称
    QMediaPlaylist *PlayerList;
    QMediaPlayer *Player;
    QString durationTime;
    QString positionTime;
    QNetworkAccessManager * network_manager;
    QNetworkRequest * network_request;
    QNetworkAccessManager * network_manager2;
    QNetworkRequest * network_request2;
    QNetworkAccessManager * network_manager3;
    QNetworkRequest * network_request3;
    QPoint m_point;
    QMovie * m_movie;                   //添加动态图
    QSize m_si;                         //动态图压缩大小
    QVector<QString> songname_original; //歌曲名
    QVector<QString> singername;        //歌手
    QVector<QString> album_name;        //专辑
    QVector<int> duration;              //时间
    QVector<QString> m_Vectorlist;      //保存hash
    QVector<QString> m_ID;              //保存album_id
    QVector<QString> m_Jpg;             //保存img
    QMap<int,QString> lrcMap;           //保存歌词
    QVector<SongInfo> JI;
    int m_Amount=0;                     //文件总索引
    int m_Value=0;                      //当前索引
    int m_StackedIndex =0;              //获取当前页面索引
    bool m_IsPause = true;              //判断播放器状态
    bool m_IsVolume = false;            //判断音量状态
    bool m_IsLyricsShow = false;        //判断歌词显示状态
    int m_IsMode=0;                     //判断播放模式0单曲1循环2单曲循环3随机播放
    QSignalMapper * myMapper;
    HistoryData  music;
    int IsExecute = 1;
    QTimer timer;



private slots:
    void init() ;

    void setPushButton(int index);//列表效果
    void replyFinished(QNetworkReply *reply);
    void replyFinished2(QNetworkReply *reply);
    void replyFinished3(QNetworkReply *reply);
    void on_pushButton_6_clicked();
    void on_pushButton_7_clicked();
    void on_pushButton_41_clicked();
    void onDurationChanged(qint64 duration); //文件时长变化，更新当前播放文件名显示
    //播放文件数据总大小的信号， 它可以获得文件时间长度。
    void onPositionChanged(qint64 position); //当前文件播放位置变化，更新进度显示
    //播放到什么位置的信号， 参数是以毫秒来计算的。
    void onPlaylistChanged(int position);
    void on_horizontalSlider_sliderReleased();
    void on_horizontalSlider_2_valueChanged(int value);
    void on_tableWidget_cellDoubleClicked(int row, int column);
    void on_pushButton_10_clicked();
    void on_pushButton_14_clicked();
    void on_pushButton_13_clicked();
    void on_pushButton_11_clicked();
    void on_pushButton_12_clicked();
    void on_pushButton_15_clicked();
    void on_pushButton_16_clicked();
    void on_pushButton_48_clicked();
    void onAutoPlay();

};

#endif // MAINWINDOW_H
